﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СтатусыРегламентированныхОтчетов
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"1b3386ce-60fe-4d67-8452-574966aab891\", \"Представление\":\"ВРаботе\"}")]
		ВРаботе = 0,//В работе
		[EnumMember(Value = "{\"Ссылка\":\"b7f6b603-6681-48ab-939b-a0b0bd82202a\", \"Представление\":\"Подготовлен\"}")]
		Подготовлен = 1,
		[EnumMember(Value = "{\"Ссылка\":\"c2301f53-0107-4470-b3c4-0bf1c5d89536\", \"Представление\":\"Сдан\"}")]
		Сдан = 2,
	}
	public static partial class СтатусыРегламентированныхОтчетов_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ВРаботе = new Guid("49575284-aa66-91b8-4d67-60fe1b3386ce");//В работе
		public static readonly Guid Подготовлен = new Guid("b0a09b93-82bd-2a20-48ab-6681b7f6b603");
		public static readonly Guid Сдан = new Guid("f10bc4b3-d8c5-3695-4470-0107c2301f53");
		public static СтатусыРегламентированныхОтчетов Получить(this СтатусыРегламентированныхОтчетов Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СтатусыРегламентированныхОтчетов Получить(this СтатусыРегламентированныхОтчетов Значение, Guid Ссылка)
		{
			if(Ссылка == ВРаботе)
			{
				return СтатусыРегламентированныхОтчетов.ВРаботе;
			}
			else if(Ссылка == Подготовлен)
			{
				return СтатусыРегламентированныхОтчетов.Подготовлен;
			}
			else if(Ссылка == Сдан)
			{
				return СтатусыРегламентированныхОтчетов.Сдан;
			}
			return СтатусыРегламентированныхОтчетов.ПустаяСсылка;
		}
		public static byte[] Ключ(this СтатусыРегламентированныхОтчетов Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СтатусыРегламентированныхОтчетов Значение)
		{
			switch (Значение)
			{
				case СтатусыРегламентированныхОтчетов.ВРаботе: return ВРаботе;
				case СтатусыРегламентированныхОтчетов.Подготовлен: return Подготовлен;
				case СтатусыРегламентированныхОтчетов.Сдан: return Сдан;
			}
			return Guid.Empty;
		}
	}
}